#!/usr/bin/env python3.10
# -*- encoding: utf-8 -*-
'''
@File    :   crud.py
@Time    :   2023/11/16 17:00:46
@Author  :   windstarry 
@Version :   1.0
'''
# here put the import lib
def retrieve(request, model, filters):
    """
    根据请求、模型和过滤器获取查询集

    参数：
    request (HttpRequest) -- 请求对象
    model (Model) -- 模型类
    filters (dict) -- 过滤器字典

    返回：
    query_set (QuerySet) -- 查询集
    """

    if filters is not None:
        # 将过滤器字典中的空字符串转换为None
        for attr, value in filters.__dict__.items():
            if getattr(filters, attr) == '':
                setattr(filters, attr, None)
        # 根据过滤器查询数据库
        query_set = model.objects.filter(**filters.dict(exclude_none=True))
    else:
        # 查询数据库中的所有数据
        query_set = model.objects.all()
    # 返回查询集
    return query_set